C语言或符号运算_ C语言入门必备词汇

Դ新华社

ߣ关键词推广

19

2021-11-07 15:25:26

用指针访问一维数组

数组中的所有元素都存储在连续内存中。数组名是数组第一个字节的内存地址,并且数组名a也表示指针.现在这个表达式可以转换成一个相当于p的指针!A作为正确的值并不意味着存储在地址A中的内容,而是数组第一个元素的第一个地址。

c语言或符号运算(c语言入门必背单词)

指针进行加法(减法)运算时,它前进(后退)的步长与它指向的数据类型有关。P指向的数据类型是int,占用内存4个字节,P 1表示前进4个字节。

用指针访问二维数组

首先看看常见指针变量的定义:

c语言或符号运算(c语言入门必背单词)

int a[2][3]={ { 2,3,6 },{ 4,5,8 } };

int(* p)[3]=a;//数组指针,指向一维数组的指针,

printf('a=%p a[0]=%pn ',a,a[0]);//400

printf(' *a=% p a[0]=% p a[0][0]=% pn ',* a,a[0],a[0][0]);//400一维数组第一个元素的第一个地址

//使用整个数组的数据没有实际意义,这种情况下编译器会将其转换为指向一维数组第0个元素的指针。

printf('(a 1)=%p a[1]=%pn ',a 1,a[1]);//412

printf(' *(a 1)=% p a[1]=% p a[1][0]=% pn ',*(a 1),a[1],a[1][0]);//

printf(' *(a 1) 2=% p a[1] 2=% p a[1][2]=% pn ',*(a 1)2,a[1]2,a[1][2]);//420

printf(' *(*a 1)=% d *(a[0] 1)=% d a[0][1]=% d ',*(* a 1),*(a[0]1),a[0][1]);//3

指针进行加法(减法)运算时,它前进(后退)的步长与它指向的数据类型有关

P的数据类型为int (*) [3],一维数组a[0]有3个整数数据,即12个字节,a 1=412。

[0]的数据类型是int *

一个小练习:打印出字符串指针数组中每一个字符

指针方法:字符串相当于一位数组。

# includestdio.h

int main()

{

char * array[5]={ 'array ',' 11 ',' kankanshisha ',' pointer ',' c program ' };

char *(p)=数组;//指向数组元素第一个地址的指针(字符指针类型)

for(int I=0;i5;(一)

{

for(int j=0;'' !=*(*(p I)j);j)

{

printf('%c ',*(*(p I)j));

}

printf(' n ');

}

返回0;

}

数组下标方法:

# includestdio.h

int main()

{

char * array[5]={ 'array ',' 11 ',' kankanshisha ',' pointer ',' c program ' };

char *(p)[5]=数组;//指向数组第一个地址的指针(* p)==数组名数组

for(int I=0;i5;(一)

{

for(int j=0;(*p)[i][j]!='';j)

{

printf('%c ',*(p)[I][j]);

}

printf(' n ');

}

返回0;

}

佭ϴý Ѷ Media8ý

在线客服

外链咨询

扫码加我微信

微信:juxia_com

返回顶部