址,也就是赋值给a[5],这个命令和a[5]=a[10];这个时候,数组的成员的值已经发 生 了变化,分别是a[]={1,2,3,4,5,11,7,8,9,10,11,12,};*/ q--; /* q由原来指向a[5].变成了指向a[4]所以 *q==5;*p==11 int *p=a+5;//p指向6q=p; //q指向...
初值表只可以用于数组,不可以用于指针,而且只可以用于数组初始化时,不可以用于二次赋值。int a[2] = {1, 2}; //正确int *p = {1, 2}; //错误,初值表不可用于指针int a[2];a = {1, 2}; //错误,初值表只能用于数组定义时的初始化 记住...
char[] 数组中的这些 你可以循环打印出来试试 打印出来的结果并不是数组中的结果 而是对应的ascll 码 值 指的是 键盘上 对应的 1 2 3 4 5 6 7 8 9 0 的数 并不是 1 2 3 4 5 6 7 8 9 0 而 int 打印出来的时候 是数组中你看到的值你可以显示char 的a[0]和int a[0]...
从0开始赋值,第0个数,即a[0]为1,第1个数a[1]为2,依次类推,a[4]=5,而a[5]之后到a[9]没有给它赋值,它只好为0,可以理解为1楼所说的初始化,也可理解为相当于为假。不过,要注意,若说要输出a[10],已经超出这个数组的大小,或者理解为越界,运行结果是一个莫名其妙的数。int...
8( )7( ) 6( )5( )4( )3( )2( )1( )使得数是100 8×7+6×5+4×3+2×1=100 c++问题。有说明:int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a+1; 则*(p+2)的值为( )。 p是个指标变数 初始是指向a[1] 应为单个的a是只阵列的第一个数a[0] 所以a+1就是指...
a代表数组起始地址,也就是1的地址,a+10是0后面地址 a
错误就这 *q = NULL,赋初值就在这里 而 *q= *(p + 5); 是 给内存(指针所指地方)存数据 无法往 NULL 存数据吧 因为
<pre t="code" l="bash">选择 B int a[][4] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};相当于<pre t="code" l="cpp">int a[][4] = { {1, 2, 3, 4},{5, 6, 7, 8},{9, 10, 0, 0} };而<pre t="code" l="cpp">int * p = *(a + 1);表明 p ...
栈区的数组是系统自动分配的,如:[cpp] view plain copy int arr[10] = { 1,2,3,4,5,6,7,8,9,0 };栈区的数组可以通过以下两种方法得出元素的个数:(1)[cpp] view plain copy int arr[10] = { 1,2,3,4,5,6,7,8,9,0 };auto diff = sizeof(arr)/sizeof(int);(2)...
for (i=1;i<9;i=i+2) 。。。求和 用: sum=sum+a[i];累加器 初值给0。程序如下:include<stdio.h> int main(){ int a[9]={1,2,3,4,5,6,7,8,9};int i,sum;sum=0;for (i=1;i<9;i=i+2) sum=sum+a[i];printf("sum=%d\n",sum);return 0;} 得 sum=20 该...