‘壹’ c语言中的下标是什么意思
c语言中的下标是定义数组a[]和数组b[n],下标是用在数组中的;
a[1]和b[1]就是下标相同的一个元素,数组a[1]中的数满足条件的之后就做移位计算,是减小左移,右移增加;
例:
inta[5]={1,2,3,4,5};
printf(“%d,%d,%d,%d,%d”,a[0],a[1],a[2],a[3],a[4]);//会输出1,2,3,4,5
a[0]=10;
printf(“%d”,a[0]);//输出10;
(1)下标法c语言扩展阅读
基本的算数运算符
(1)、+加法运算或正值运算符
4+4、+5
(2)、-减法运算或负值运算符
6-4、-10、-29
(3)、乘法运算
注意符号,不是x,而是;
(4)、/除法运算
注意符号,不是÷,也不是,而是/;
整数除于整数,还是整数。1/2的值是0,这个并不是二分之一,不会四舍五入,直接截断取值;
(5)、%取余运算
取余:即两个整数相除之后的余数;
注意:%两侧只能是整数,正负性取决于%左侧的数值;
‘贰’ 关于C语言编程 的下标是指什么
比如下标为1的则表示数组里的第2个数,数组的下标是从0开始的。
例如a数组为[1,2,3],b数组为[3,3,5],所以a[0]+b[0]=4,a[1]+b[1]=5
‘叁’ C语言下标怎么打
分两种情况。
1 若你说的下标是指排版打印时在正常文字右下角的符号,那么,C语言编译器是文本编辑器,不能排版出这种效果。
2 若你说的是数组下标,则是这种写:
int a[20];
a[0]=1; // [0]就是下标,表示数组第一个元素。
‘肆’ C语言二维数组下标表示方法
下标就是在[]里的,他是重0开头的。具体表示如下:
int
a[5];//5代表a最后个数组里的元素个数
是初学者吧!
要努力哟!
‘伍’ C语言数组下标
下标可以是变量 也可以是常量。直接说a[0],a[1],a[2],a[3]这样的下标就是常量。
对于访问来说, 不在意是变量还是常量, 系统只是需要一个值, 作为偏移量
不管是变量还是常量, 访问的时候 肯定是一个特定值, 而系统要的 无非是这样一个偏移量而已。
‘陆’ c语言中下标是怎么算的
在C语言中,下标定义为数组arr[]和数组brr[n]。下标用于数组中。
arr[1]和brr[1]是下标相同的元素。当数组arr[1]中的数字满足条件时,将执行移位计算。C语言是向左移动减少,向右移动增加。
例如:
int arr[4]={5,6,7,8}
Printf(“%d、%d、%d、%d”、arr[0]、arr[1]、arr[2]、arr[3]);//输出5、6、7、8
arr[0]=25
Printf(“%d”,a[0]);//输出25
(6)下标法c语言扩展阅读:
基本算术运算符
1、+加法或正值运算符:8+8、+9。
2、-减法或负值运算符:7-2、-20、-35。
3、乘法运算:注意标志,不是x,而是*。
4、除法运算:注意符号不是÷或,而是/,整数除以整数依然为整数。1/2的值是0,不是二分之一,不会四舍五入,直接去掉小数部分。
5、%取余操作:取除以两个整数后的余数。
注:%的两边只能是整数,正负取决于左边的值。
‘柒’ c语言问题,地址法和下标法
那里显然是错了,应该是*(a+i),因为这时p还没有赋值呢!
‘捌’ C语言下标法和指针法调用数组
1.p[i]好一些
2.如果是一般类型比较小的,比如int p[10], char p[10]这个用指针和用数组没啥区别
但是如果是一个大型的结构体,比如
struct str
{
int a[1000],
char b[100],
}p[10];
这个结构体的大小为4100
这个时候,假设i = 2
*(p + i )就相当于*(p + 2),相当于p夸了2个单位的结构体大小(4100)才指到p的第二个位置,然后才取值
而p[2]就直接可以取到第二个结构体的值了
3,第二种方法效率高一些,原因如第二个
4,这个我也说不好。你做多了C的东西自然而然就知道了
‘玖’ C语言数组的下标
第一:下标是用在数组中的;第二:定义数组的是时候下标是代表数组的长度,比如inta[5];就是定义一个长度为5的存放整型的数组,数组就是集合,数组a有5个元素,即a[0],a[1],a[2],a[3],a[4],一共5个元素,此时下标就是第几个元素的意思。例子如下:inta[5]={1,2,3,4,5};printf("%d,%d,%d,%d,%d",a[0],a[1],a[2],a[3],a[4]);//会输出1,2,3,4,5a[0]=10;printf("%d",a[0]);//输出10‘拾’ 在C语言中,用下标如何访问数组元素
.以下标引用的方式访问数组
在使用数组的场合中,我们常见的一种访问方法是使用下标访问数组元素,如:array[2] = 1,此语句是将该数组的第三个元素赋值为1.[ ]符号中的数字可以认为是在数组基地址上的偏移量,可以通过改变这个偏移量来访问整个数组。
2.以指针访问的方式访问数组
除了使用偏移量的方法,我们还可以使用指针的方法来访问数组,即间接引用的方式。如:*(array+2) = 1,同上面的代码一样,也是对该数组的第三个元素进行赋值。
3.下标引用和指针访问的执行效率问题
对于这两种不同的访问数组的方式,它们的执行效率也不同,在这里先给出结论:指针访问的效率 >= 下标引用的效率。接下来我们来说说,为什么使用指针进行间接访问的效率会优于小标引用的效率。
下标引用的效率
现在假设有如下代码,执行对整个数组的初始化过程:
int array[10];
for(int i = 0;i < 10;i++)
{
array[i] = 0;
}
在这里我们还是假设编译器中int类型占4个字节,在执行array[i] = 0时,编译器会将其转化为类似*(array + (i*4)) = 0形式。在整个执行10次的循环中,意味着也进行了10次乘法运算操作和10次加法运算操作。
指针访问的效率
假设有如下代码,执行对整个数组的初始化过程:
int array[10];
for(int *ptr = array; ptr < array+10; ptr++)
{
*ptr = 0;
}
这里是将指针一开始指向数组首地址,然后每次向后移动一个数组元素,这里是每次移动4个字节,即每次对指针地址+4。在整个过程中只进行了10次加法运算。同上对比可得,对于数组操作来说,指针访问的效率是优于下标引用的。
4.下标引用和指针访问的优先级问题
关于这个问题,笔者还是先给出结论,再举例进行阐述。
结论:下标引用优先级 > 指针访问优先级。
假设我们现在有以下两个数组的声明:
int *array1[10];
int (*array2)[10];
关于上述声明,乍一看很容易混淆,但其实这只是一个关于结合优先级的问题。在看这些声明时,需要记住下标优先级高于指针*,并且如果出现了( ),那么它的优先级一定是最高的。
int *array1[10]
在*和[ ]同时出现的时候,我们先结合优先级高的[ ]来看,即它先声明了一个含有10个元素的数组array1,然后将剩下的int *组合,可以知道这个数组里面的每个元素,都是一个指向整型类型的指针变量。也就是说,这是一个含有10个指针变量的指针数组。
int (*array2)[10]
这里的声明中出现了( ),由于( )的优先级最高,所以我们先看(*array2),即array2是一个指向某种类型的指针变量。再结合剩下的int [10],可以知道这个指针变量指向的数据类型是含有10个元素的整型数组。也就是说,这是一个数组指针,指向一个10元素整型数组。