人人做人人澡人人爽欧美,国产主播一区二区,久久久精品五月天,羞羞视频在线观看免费

當前位置:蘿卜系統 > 硬件軟件教程 > 詳細頁面

指針|劉懷玉|博客園

指針|劉懷玉|博客園

更新時間:2023-06-21 文章作者:未知 信息來源:網絡 閱讀次數:

根據運行的環境,操作系統可以分為桌面操作系統,手機操作系統,服務器操作系統,嵌入式操作系統等。

calloc malloc_calloc 數組_malloc calloc

例如,在以下代碼中,定義了字符變量c和整數變量a,并分別分配了初始值'B'和50.

#include <stdio.h>
int main(void)
{
    char c='A';
    int a=100;
    printf("a=%d\n",a);//輸出變量a的值
    printf("&a=%x\n",&a);//輸出變量a的地址
    printf("c=%c\n",c);
    printf("&c=%x\n",&c);
    return 0;
}
程序某次的運行結果為:
a=50
&a=12ff40
c=B
&c=12ff44

int a[20];
int *p;
p=a;

指針p加1表示跳過數組元素空間并指向下一個數組元素.

示例:

int *p,a[10];
p=a; //相當于 p=&a[0];
//p+1,相當于訪問a[1];

注意: 數組名稱a等于數組的第一個元素a [0]的地址,即a等于&a [0].

上面的語句定義了一個整數指針變量p和一個整數數組a,并使p最初指向數組的第一個元素a [0].

當指針變量和數組元素連接時,可以通過以下三種方式訪問??數組元素.

直接訪問: 數組名稱的形式[下標];如a [3]. 間接訪問: (數組名稱+ i); 0 <>

3)間接訪問: (指針變量);通過復制和刪除指針P的增量和減量,可以訪問不同的數組元素.

for (p=a;p<a+N;p++) //用p的移動范圍控制循環次數
    printf ("%d\t",*p);

確定指針移動的開始和結束地址,即循環控制表達式的大小是使用指針訪問數組元素的關鍵.

示例1使用指針變量在數組元素上實現輸入和輸出操作.

#include <stdio.h>
#define N 10
int main (void)
{
    int *p,a[N],i;
    p=a; //p初始指向a[0]
    for(i=0;i<N;i++) //用整型變量i控制循環次數
        scanf ("%d",p++); //指針P表示地址,不能寫成&P
    for(p=a;p<a+N;p++) //用p的移動范圍控制循環次數
        printf("%d ", *p);
    return 0;
}

如果存在二維數組:

malloc calloc_calloc malloc_calloc 數組

int a[3][4] = {{1, 3, 5, 7}, {9, 11, 13, 15}, {17, 19, 21, 23}};
int *p=a;

計算機上的存儲空間:

A [0]表示元素a [0] [0]的地址,a [1]表示元素a [1] [0]的地址,即a [1]&a [1] [0]; a [2]表示元素a [2] [0]的地址,即a [2]&a [2] [0].

同時,我們將p指向數組a,然后p [0]表示a [0] []行; p [1]表示p [1] []行...

因此,如果要表示二維數組中的特定元素,則需要專門表示一列

現有:

p[i]+j;//表示i行j列的具體元素;

地址也是指針,并且可以通過間接訪問字符*訪問指針所指向的空間. 二維數組元素a [i] [j]的幾種等效形式可以按以下方式訪問.

*(p[i] + j) <--> *(*(p + i) + j) <-->*&p[i][j]<-->p[i][j]

#include<stdio.h>
int main()
{
	char *s1="abcde";
	char s2[]={"abcde"};
	printf("%s,%c%s,%c\n",s1,*s1,s1+1,s1[1]);
	printf("%s,%c,%s,%c\n",s2,*s2,s2+1,s2[1]);
	return 0;
}

運行結果為:

abcde,a,bcde,b

abcde,a,bcde,b

請注意輸出字符和輸出字符串之間的區別.

使用指針(例如s1,s1 + 1,s2等)表示字符串時,字符串從指針所指向的字符開始,直到字符串符號“ \ 0”的結尾;當使用s1時,s1 [1],(s1 + 1)calloc 數組,s2 [0]等表示字符,即指針所指的字符或位于下標中的字符元素. 可以看出,字符數組和字符指針的用法相似. 但是兩者是不同的:

字符串指針變量本身是一個用于存儲字符串的第一個地址的變量. 字符串本身存儲在從第一個地址開始并以\ 0結尾的連續存儲空間中.

calloc malloc_malloc calloc_calloc 數組

char * ps =“ C語言”;

順序為:

1. 將內存分配給字符指針;

2. 將內存分配給字符串;

3. 將字符串的第一個地址分配給字符指針;

這里有兩點需要清楚考慮:

1. * a僅指向一個字符

#include <stdio.h>
#include <stdlib.h>
int main(void){  
    char *a= "bcd" ;  
    printf("輸出字符:%c ", *a);  /*輸出字符,使用"%c"*/
    printf("輸出字符:%c ", *(a+1) );  /*輸出字符,使用"%c"*/
    printf("輸出字符串:%s ", a); /* 輸出字符串,使用"%s";而且a之前不能有"*"  */
}

運行結果:

b c bcd

2. 如果字符串常量出現在表達式中,則表示的值是字符串常量的第一個字符的地址. 因此,“ hello”僅代表其地址. 原始的聲明方法等效于以下聲明方法:

char *a;
a="hello";/"hello"僅代表第一個字符的地址

通過字符指針修改變量字符串

通過字符指針變量,可以訪問指向的字符數組中保存的字符串. 您不僅可以讀取保存在數組中的字符串,還可以修改字符串的內容. 從數組的本質上可以理解原因: 數組是同一類型的變量的集合,因此存儲在其中的字符串可以理解為由幾個字符變量組成. 每個字符變量當然都可以更改.

示例:

#include<stdio.h>
#include<string.h>
int main (void)
{
    char str[30]="Learn and live."
    *p=str;
    *(p+6)='A';
    *(p+10)='L';
    puts(str);
    return 0;
}

在此程序中calloc 數組,字符指針p指向數組str中的字符串. 由于字符串由一系列字符變量組成,因此可以通過指針變量p來更改字符串中的字符. 因此,程序輸出: 學習和生活.

calloc malloc_malloc calloc_calloc 數組

p =(int)malloc(nsizeof(int))

在特定用途中,您需要將malloc()的返回值轉換為特定的指針類型,并將其分配給指針.

請勿超出范圍使用,大小由分配后確定.

分配多個連續的空間并將其初始化為0. 應用程序成功后,將返回指向分配的內存空間的起始地址的指針;否則,將返回0. 如果失敗,則返回NULL(0).

動態內存釋放功能free()

釋放應用的動態內存空間.

定義指針frondPtr,behindPtr用于前進和后退以同時修改數組元素

將溫度定義為介質修改參數

將frondPtr地址初始化為x;

初始化為落后的Ptr地址是x +(n-1);

對于指針frondPtr地址小于backPtr

frondPtr ++,背后的Ptr-

交換頭和尾元素

結束

將op定義為搜索字符

將str [N]定義為搜索字符串

calloc 數組_calloc malloc_malloc calloc

輸入搜索字符

getchar()吸收換行符

獲取輸入字符串

定義字符串指針p并將其初始化為0;

調用FindChar函數查找目標字符并將返回地址分配給p,并判斷p是否為0;

找到輸出索引索引p與str的首地址之間的差異

未找到輸出未找到

函數char * FindChar(char * p,char op)

while (*p 不為0并且不為換行符'\n')
查找字符op
p++;
找到return p;
    找不到return NULL;

定義字符數組temp [11]輔助交換字符串

輸入N,K

定義字符串數組s [101] [11]以輸入和存儲字符串;

對于循環輸入字符串s [i]

字符串排序

對于j = 0到N-i; j ++進行我掃描

比較相鄰字符串的大小,將大字符串向后移動

判斷是否進行第K輪

如果您進行第K輪,請按順序輸出每個字符串

否則,進行下一輪掃描


本文來自本站,轉載請注明本文網址:
http://www.pc-fly.com/a/jisuanjixue/article-283647-1.html



溫馨提示:喜歡本站的話,請收藏一下本站!

本類教程下載

系統下載排行

網站地圖xml | 網站地圖html
主站蜘蛛池模板: 眉山市| 满洲里市| 阜康市| 大港区| 花莲市| 宁都县| 大连市| 遂川县| 寿宁县| 台中市| 桦南县| 梨树县| 方山县| 兴安盟| 中江县| 黔江区| 习水县| 保靖县| 广饶县| 兴安盟| 焦作市| 龙游县| 吉隆县| 枣阳市| 读书| 怀集县| 大厂| 四子王旗| 滦平县| 博罗县| 罗田县| 萨迦县| 顺平县| 松原市| 南汇区| 牙克石市| 长子县| 阿图什市| 台南市| 新野县| 揭西县|