当前位置:首页 » 编程语言 » c语言指针数组制作
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言指针数组制作

发布时间: 2022-03-15 21:03:33

A. 用c语言指针数组编程实现:

#include<stdio.h>
#include<stdlib.h>

intmain()
{
char*a[]={"鼠","牛","虎","兔","龙","蛇","马","羊","猴","鸡","狗","猪"};
intyear,y;
scanf("%d",&year);
y=year<0?year+1:year;//注意:没有公元0年,公元前1年紧接着公元1年
while(y<0)y+=12;
printf("公元%s%d年是%s年 ",year<0?"前":"",abs(year),a[(y+8)%12]);
return0;
}

B. 怎么才能用c语言中的指针与数组做一个简单的项目

我估计有可能你的问题在于:
把char t定义在了for循环里面,而不是开始就声明。
vc里面,如果写c文件而不是cpp
函数里面所有的变量都要在开头声明好。

如果仅仅是定义char型,我试过了,没问题。

补充答复:
楼主:我把示例给你看:
void testfun(char *s)
{
//定义变量
int i;
char t;
int n=strlen(s);
//在开始所有语句之前把变量声明好。
for(i=0;i<n/2;i++)
{
t=*(s+i);
*(s+i)=*(s+n-1-i);
*(s+n-1-i)=t;
}
}
只要在子函数里,在前面声明好就OK。
记住是在使用其他任何语句之前先声明好变量。

如果要追究原因,那就是编译器的问题。

vc编译c文件确实存在这个问题,
如果是linux下的cc就不存在这个问题。
如果是vc编译cpp也不存在这个问题。

如果要再深究,vc为什么编译c会存在这个问题,那就要问做vc的人了,或者其他高手请帮忙解答。我也不明白了。

C. C语言指针数组

哥们!建议你写完一个程序之后如果编译器报错!先认真的看一遍!
一些很明显的错误可以很容易的发现的!例如你的i应该是<2;
而不是24!
j应该是<3而不是小于5;
不然你的指针都指到数组外面去了!
还有你声明的p的类型是int*;
a的类型是int**;
他们是不能直接赋值的!
可以改为 p=a[0]; 或者你直接定义int **p;
吧p定义成二级指针也可以!
帮你把代码修改如下!

#include<iostream>
using namespace std;
void main()
{
int *p;
int a[2][3];
int q=0;
p=a[0];
for(int i=0;i<2;i++)
for(int j=0;j<3;j++)
{
q+=1;
*(p+3*i+j)=q;
}
for(int k=0;k<6;k++)
cout<<*(p+k)<<endl;
}
输出 数组的值为:
1
2
3
4
5
6
是否可以解决您的问题?

D. C语言 指针数组

指针是没有数据存放空间的,所以声明指针数组后,要给各指针动态分配存储单元。下面例子,每个指针分配120字节。
#include <stdio.h>
int main()

{
char *p[5];
int i;
for (i=0;i<5;i++) p[i]=(char *) malloc(sizeof(char)*120);
printf("input 5 line strings\n");
for (i=0;i<5;i++) gets(p[i]); // 输入5行 字符
printf("\n======Output:=======\n");
for (i=0;i<5;i++) puts(p[i]); //输出 5行
return 0;
}

E. c语言指针数组

要知道C里面其实是没有字符串型的,定义一个字符串只能类似:
char *str=“i love c”;
要打印出这个字符串printf(“%s”,str),那个*号表明str也是一个地址,
所以本质上说C语言中所谓的字符串变量其实就是一个地址。printf(“%s”,str)这个函数的原理是从str指向的地址读取字符并输出,直到遇到第一个表示字符串结束的字符(即‘\0')。

F. c语言 指针数组

#include<iostream>
using namespace std;
void find(int* a, int length, int x) {
int* p = a;
int* q = a + length - 1;
int* r;
while(p < q) {
r = p + (q - p) / 2;
if(*r == x) {
cout<<"找到了!"<<endl;
return;
} else if(*r > x) {
q = r - 1;
} else {
p = r + 1;
}
}
cout<<"找不到了,放弃吧"<<endl;
}

void main() {
int len;
cout<<"想输几个数?"<<endl;
cin>>len;
if(len < 0) {
cout<<"你是在玩我吗?"<<endl;
return;
}
int* a = new int[len];
for(int i = 0; i < len; i++) {
cout<<"输入第"<<i<<"个数:"<<endl;
cin>>a[i];
}
int x;
cout<<"想找哪个数?"<<endl;
cin>>x;
find(a,len,x);
}

G. c语言编程(指针的指针,指针数组)

#include<stdio.h>
#include<stdlib.h>
#include<string.h>

voidsort(char*s[],intn){
inthalf=n/2;
intleft,right,i;
char**t;
if(n==1)return;
sort(s,half);
sort(s+half,n-half);
left=0;
right=half;
t=(char**)malloc(sizeof(char*)*n);
i=0;
while(left<half&&right<n){
if(strcmp(s[left],s[right])<0){
t[i]=s[left];
i++;
left++;
}
else{
t[i]=s[right];
i++;
right++;
}
}
while(left<half){
t[i]=s[left];
i++;
left++;
}
while(right<n){
t[i]=s[right];
i++;
right++;
}
memcpy(s,t,sizeof(char*)*n);
free(t);
}

H. c语言 如何写一个指向指针数组的指针

typedefint*typeof_array1[3];
typeof_array1*array2=&array1;

I. C语言指针数组

P取的是地址,但是P取的地址可能是数组的首地址,那么P就可以表示数组

J. 关于c语言指针数组·

这个问题好理解啊,char *p[2]是指针数组,数组两个元素是字符型指针p[0]和p[1]分别指向“abc”和“deg”(相当于字符数组)的首地址,以%s方式输出就输出了字符串啊,例如:char *pt;pt="abc";printf("%s",pt);
研究它:int *p[2]={"21","32"},相当于 int *pt;pt="21";printf("%s",pt);你再试试用%d输出下,哈哈,迷糊不
其实用什么类型的指针都是指向一块内存的首地址,只不过你用这指针时,例如int*p,那么p++,一下就往后数4个字节,,看你悟性了,输出格式起决定性作用,%d格式输出就输出首地址,%s格式输出就输出字符串。