重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
指针实际就是实体的代表而已,不过指针是个实体的存放地址;可以进行地址运算;
在桦南等地区,都构建了全面的区域性战略布局,加强发展的系统性、市场前瞻性、产品创新能力,以专注、极致的服务理念,为客户提供成都做网站、网站建设 网站设计制作定制网站建设,公司网站建设,企业网站建设,高端网站设计,营销型网站建设,成都外贸网站建设公司,桦南网站建设费用合理。
如:p++,指针指向下一地址;p=q以q指针指向地址作为p指针的地址;
普通的用法是,声明实体或实体数组,用指针指向实体的地址:实体 b,g[8],*p;
p=b;数组名称实际就是固定长度的指针,所以常有:p=g;p=g+2相当于p=g[2];
如函数 void fun(int b[]);可以用int *p;fun(p)来调用;p代表数组b;
如函数 void fun(int *p);可以用int b[6];fun(b)来调用;b相当于指针p;
#include "stdio.h"
int my_search(int *arr, int num, int size)
{
for (int i = 0; i size; i++)
if (arr[i] == num)
return i;
return -1;
}
int main()
{
int b[] = { 1,3,6,9,10,13,15,18,19,31,38,39,43,46,79,83,90 };
int num = 0;
printf("输入待查找的数:");
scanf_s("%d", num);
int num_pos = my_search(b, num, sizeof(b) / sizeof(int));
if (num_pos = 0)
printf("查找成功,该数位于数组b的第%d号位置\n", num_pos + 1);
else
printf("查找失败,该数不在数组b中\n");
return 0;
}
错在void select_sort(char(*p)[50],int m)这个函数里面的选择排序。
for(i=0;im;i++)
for(j=0;ji;j++)
应该改为
for(i=0;im-1;i++)
for(j=i+1;jm;j++)
因为选择排序是当前字符串和它之后的字符串进行比较
在我的系统中运行你 的程序和你想的一样,是8不是7.
string 1,string 2:
it's a boy
boy
offset 8 "boy"in"it's a boy"
所谓指针就是地址,只是指针会区别它是什么指针,对应的数据占多大内存。如subst,str都是char*类型的,他们是字符指针,所以他们指向的类型是字符。*str和str[0]的含义是一样的,意思是取得首字符。在c语言中字符串就是用字符指针来表示的,对应的是“%s”,而加上了*,是取这个字符指针地址的内容,也就是一个字符,用“%c”表示。所以你打印的是字符串,就应该用%s。
您好,很高兴回答您的问题。
您的这个程序,主函数中的第一句话表示p1 和str都是数组名,指向数组中的第一个元素。p2是指针变量,指向的是字符型数据。第二句话表示p2这个指针变量指向的是包含有abc等三个元素的字符型数组。strcpy(str+1,strcat(p1,p2))表示现将p2所指向的内容添加到p1这个数组的结尾处,并且存放在p1中,那么做完之后p1里的内容为abcabc。接下来执行strcpy(str+1,p1)表示把此时p1中的内容拷贝到str中,是从str+1这个位置开始。因为str是数组名,指向的是数组的第一个元素,那么str+1,就是从str数组的第二个元素位置开始,所以最终得到的结果就是aabcabc。
以上就是我对这个问题的回答,希望您能帮助到您。