发表日期: 2022-09-01 14:36:42 浏览次数:90
上往建站提供网站建设,网站推广,网店设计,网站建设,企业网站,网站制作,网页设计,网站建设,企业网站制作,网页制作 高端定制网站建设,H5页面设计开发,微网站,微信运营,移动端设计开发,手机端网站,小程序,致力于苏州企业网站建设与公司网站制作,全国用户超10万,10余年的网站开发和建站经验,主营:网站建设、网络推广、微信公众号代运营、商城小程序开发定制、网店设计等业务,专业团队服务,效果好。。
服务热线:400-111-6878 手机微信同号:18118153152(各城市商务人员可上门服务)
五家渠网站建设_企业网站制作公司_高端网站设计开发-五家渠上往
字符串指针:
char *p=(char*)&str != str; str==str[0] =='H'
得出结论字符数组的 首地址可以用 arrgs ,&arrgs,来表示并且它们相等,
但是指针&str和str是不同的,当遇到字符串指针时候要注意处理方式;
HBR1
HBR1
238***9419@qq.com
5年前 (2017-05-05)
喵帕斯
115***2452@qq.com
87
一个小知识点:
在我们没有明确数组的元素个数时,在程序中想知道数组单元个数可以使用 sizeof(a)/sizeof(a[0]), sizeof(a) 是得到数组 a 的大小,sizeof(a[0]) 是得到数组 a 中单个元素的大小(因此可以不必要是a[0],a[i]都行),eg:
#include<stdio.h>
int main(int argc,char *grgv[])
{
int a[]={1,2,3,4,5};
int b;
b=sizeof(a)/sizeof(a[0]);
printf("数组元素个数为:%d",b);
return 0;
}
喵帕斯
喵帕斯
115***2452@qq.com
5年前 (2018-01-25)
流浪天涯
223***9389@qq.com
42
数组是一种一次申请多个变量的方法,数组的使用让我们可以在程序中保留多个变量的值,进行处理,例如给定n个学生的成绩,要求有多少学生超过了平均分,代码如下:
#include <stdio.h> //导如输入输出头文件
int main(){
//主函数
int cj[100]={0};//定义数组
int n;
int count=0;//定义计数器,统计有多少人达到平均分
scanf("%d",&n);
int i=0;
//读入数据
for(i=0;i<n;i++){
scanf("%d",&cj[i]);
}
//对数据进行求和
double sum=0;
for(i=0;i<n;i++){
sum+=cj[i];
}
//求平均分
double arg=sum/n;
//判断有多少人达到平均分;
for(i=0;i<n;i++){
if(cj[i]>arg){
count++;
}
}
//输出平均分和人数
printf("平均分为:%0.2f 超过平均分的人有:%d个 ",arg,count);
return 0;
}
流浪天涯
流浪天涯
223***9389@qq.com
5年前 (2018-02-12)
沂圆束潇
953***815@qq.com
32
#include <stdio.h>
int main()
{
int a[2] = {1,2};
printf("a = %d ",a[0]);
printf("*(a+0) = %d ",*(a + 0));
printf("a[1] = %d ",a[1]);
printf("*a = %d ",*a);
printf("*(a+1) = %d ",*(a + 1));
printf(" ");
printf("a 的地址:%p ",a);
printf("(a+0)的地址:%p ",(a + 0));
printf("(a+1)的地址:%p ",(a + 1));
// %p 读入一个指针
printf(" ");
return 0;
}
输出结果:
a = 1
*(a+0) = 1
a[1] = 2
*a = 1
*(a+1) = 2
a 的地址:0x7ffe9e227634
(a+0)的地址:0x7ffe9e227634
(a+1)的地址:0x7ffe9e227638
事实上 a[0] 、a[1]...a[i] 代表的都是值,a、(a+0)、(a+1)、(a+i) 代表的是地址;另外这里的 a 代表整个数组的首地址,相当于 a[0] 的地址,而这里 (a+1) 就代表的是 a[0+1] 的地址。
正如文章中提到的:所有的数组都是由连续的内存位置组成。最低的地址对应第一个元素,最高的地址对应最后一个元素,即是说 (a+i) 就代表的是 a[0+i] 的地址。
沂圆束潇
沂圆束潇
953***815@qq.com
4年前 (2018-04-11)
布克F91
335***443@qq.com
28
对于数组的初始化需要注意以下几点:
1) 可以只给部分元素赋值,当 { } 中值的个数少于元素个数时,只给前面部分元素赋值。例如:
int a[10]={12, 19, 22 , 993, 344};
表示只给 a[0]~a[4] 5 个元素赋值,而后面 5 个元素自动初始化为 0。
当赋值的元素少于数组总体元素的时候,不同类型剩余的元素自动初始化值说明如下:
对于 short、int、long,就是整数 0;
对于 char,就是字符 '';
对于 float、double,就是小数 0.0。
我们可以通过下面的形式将数组的所有元素初始化为 0:
int nums[10] = {0};
char str[10] = {0};
float scores[10] = {0.0};
由于剩余的元素会自动初始化为 0,所以只需要给第 0 个元素赋值为 0 即可。
2) 只能给元素逐个赋值,不能给数组整体赋值。例如给 10 个元素全部赋值为 1,只能写作:
int a[10] = {1, 1, 1, 1, 1, 1, 1, 1, 1, 1};
而不能写作:
int a[10] = 1;
布克F91
布克F91
335***443@qq.com
4年前 (2018-06-13)
Jiangang
121***5109@qq.com
40
指针与数组名的区别
指针:也是一个变量,存储的数据是地址。
数组名:代表的是该数组最开始的一个元素的地址。
int a[10];
int *p;
p = &a[0] // 可以写成 p = a;
对数组元素 a[i]的引用也可以写成*(a+i)这种形式。
赋值语句 p=&a[0] 也可以写成下列形式: p=a。
p 是个指针,p[i]与*(p+i)是等价的。
区别:指针是一个变量,可以进行数值运算。数组名不是变量,不可以进行数值运算。
Jiangang
Jiangang
121***5109@qq.com
4年前 (2018-09-05)
chrislee
cod***hrislee@163.com
28
数组和指针的关系
函数的参数中 数组类型参数 int a[]本质是指针 可以直接换成 int *a;
可以用数组的运算符[]进行运算,而且可以通过a[0]就直接修改了外面的数组元素;
size of(a) == sizeof(int *) 所以函数内部没法用sizeof得到数组的长度 只能传一个len;
// 一个整型数组的指针,长度为 len, 得到数组中的最小值和最大值 ———— 从外部传入两个指针,从而将所求的两个结果保存带出来,得到多个返回值。
void minMax(int a[], int len, int *min, int *max) {
int i;
*min = *max = a[0]; //假定最大值 最小值相等 为a[0]
for(i= 1; i < len, i++) {
if( a[i] < *min) {
*min = a[i];
}
if(a[i] > *max) {
*max = a[i];
}
}
}
int a[] = {1, 2, 3, 4, 5, 7, 8, 9, 15, 18, 25, 33};
int min, max;
minMax(a, sizeof(a)/ sizeof(a[0]), &min , &max );
printf( "min = %d, max = %d ", min, max);
数组变量是特殊的指针,数组变量本身表达地址,int a[10]; int *p =a;
数组变量无需用取址符& ;
数组的元素表达的是变量,需要用&取地址,如 m = &a[0];
[]运算符可以对数组做,也可以对指针做 p[0] == a[0];
*运算符可以对指针做,也可以对数组做 *a = 25, *a可以得到或者修改数组首个元素的值;
实际上数组是 const 的指针,所以不能被赋值。 如果 int a[] = {1,2,5,7}; int b[],由于 int b[]实质上等价于 <===> int const *b; b 是一个常数,不能被改变,初始化出来代表这个数组就不能再改变。 b = a; (错误) 数组变量之间是不可以这样互相赋值的。 而 int *q = a; 这样是可以的。
五家渠网站建设_企业网站制作公司_高端网站设计开发-五家渠上往
上往建站提供微信小程序+公众号商城+企业网站建设一站式微信网站商城营销系统,微信小程序是一种依附于微信体内即点即用,无需下载安装即可使用的轻应用,它开启了移动端“触手可及”的梦想,致力于苏州企业网站建设与公司网站制作,全国用户超10万,10余年的网站开发和建站经验,主营:网站建设、微信公众号代运营、商城小程序开发定制、网店设计等业务,专业团队服务,效果好。
服务热线:400-111-6878 手机微信同号:18118153152(各城市商务人员可上门服务)
备案号: 苏ICP备2021016738号-6
CopyRight © 2021 上往建站 All Right Reserved 未经许可不得复制转载
24小时服务热线:400-111-6878 E-MAIL:1120768800@qq.com QQ:1120768800
网址: https://www.768800.club 网站建设:上往建站
关键词: 网站建设| 域名邮箱| 服务器空间| 网站推广| 上往建站| 网站制作| 网站设计| 域名注册| 网络营销| 网站维护|
企业邮箱| 虚拟主机| 网络建站| 网站服务| 网页设计| 网店美工设计| 网站定制| 企业建站| 网站设计制作| 网页制作公司|
欢迎您免费咨询,请填写以下信息,我们收到后会尽快与您联系
全国服务热线:400-111-6878
指针与数组的区别
字符数组:
字符串指针:
得出结论字符数组的 首地址可以用 arrgs ,&arrgs,来表示并且它们相等,
但是指针&str和str是不同的,当遇到字符串指针时候要注意处理方式;
HBR1
238***9419@qq.com
喵帕斯
115***2452@qq.com
一个小知识点:
在我们没有明确数组的元素个数时,在程序中想知道数组单元个数可以使用 sizeof(a)/sizeof(a[0]), sizeof(a) 是得到数组 a 的大小,sizeof(a[0]) 是得到数组 a 中单个元素的大小(因此可以不必要是a[0],a[i]都行),eg:
喵帕斯
115***2452@qq.com
流浪天涯
223***9389@qq.com
数组是一种一次申请多个变量的方法,数组的使用让我们可以在程序中保留多个变量的值,进行处理,例如给定n个学生的成绩,要求有多少学生超过了平均分,代码如下:
流浪天涯
223***9389@qq.com
沂圆束潇
953***815@qq.com