c 指针-指针数组,真的好绕,真费脑子

问题描述

指针数组,真的好绕,真费脑子

怎样利用指针对国家名进行排序??? 求指导···· 数组织镇和指针数组????

解决方案

** 刚开始学,就先在主函数中写吧**

int main()
{
int n,i,j;
char (*p)[10];
char a[10];
printf("国家个数:");
scanf("%d",&n);
p=(char (*)[10])malloc(n*sizeof(char [10]));
printf("国家名n");
for (i=0;i<n;i++)

{
scanf("%s",
(p+i));
}
for(i=0;i
{
for(j=i+1;j
{
if (strcmp(*(p+i),*(p+j))>0)
{

strcpy(a,*(p+i));

strcpy(*(p+i),*(p+j));

strcpy(*(p+j),a);

printf("排序为n");
}

    }
}
for(i=0;i<n;i++)
{
    printf("%sn",*(p+i));
}
free (*p);
return 0;

}

解决方案二:

http://download.csdn.net/detail/shierhao/1391442
http://www.oschina.net/code/snippet_940580_22317
http://zhidao.baidu.com/link?url=ptHHgJ8u5ZKsna1p5eiDhMqfPTbfG9ygE0GQE9drI1EhzdDbW22LnCt_bYmsJWwJzM_yZSCYNWA-43ZO0PX34K

时间: 2024-12-23 17:10:56

c 指针-指针数组,真的好绕,真费脑子的相关文章

c语言-C语言中二级指针修改数组问题。

问题描述 C语言中二级指针修改数组问题. 数组相当于一级指针,我写了一个二级指针被调用.结果它总是宕机,求指导,谢谢. 解决方案 这段程序编译会报错吧:cannot convert parameter 1 from 'char (*)[100]' to 'char **' 可以这样 试试看#include #include #include int getMemBuf(char*& p2){ char* tmp = NULL; tmp = (char*)malloc(100); strcpy(t

一个关于指针和数组的问题

问题描述 一个关于指针和数组的问题 #define _CRT_SECURE_NO_WARNINGS#include ""stdlib.h""#include ""stdio.h""#include ""string.h"" int main(){ char buf1[100] = { 0 }; char buf2[100] = { 0 }; char *p1 = buf1; char *

c/c++ 函数、常量、指针和数组的关系梳理

压力才有动力,15年中旬就要准备实习,学习复习学习复习学习复习学习复习--无限循环中,好记性不如烂笔头--从数组开始,为主干. c 的array由一系列的类型相同的元素构成,数组声明包括数组元素个数和类型,c 中的数组参数是引用形式传参(传址调用),而常量标量是按值传递. //[]方括号表示声明的是数组,里面的数字表明了数组包含的元素数目 int states[50];//声明50个整数的数组 double code[365];//声明365个浮点数的数组 char chr[20];//声明20

指针与数组(二)

[例6-11]用指针法输入输出二维数组各元素.#include<stdio.h>main(){int a[3][4],*ptr;int i,j;ptr=a[0];for(i=0;i<3;i++)for(j=0;j<4;j++)scanf("%d",ptr++);/*指针的表示方法*/ptr=a[0];for(i=0;i<3;i++){for(j=0;j<4;j++)printf("%4d",*ptr++);printf("

指针与数组(一)

变量在内存存放是有地址的,数组在内存存放也同样具有地址.对数组来说,数组名就是数组在内存安放的首地址.指针变量是用于存放变量的地址,可以指向变量,当然也可存放数组的首址或数组元素的地址,这就是说,指针变量可以指向数组或数组元素,对数组而言,数组和数组元素的引用,也同样可以使用指针变量.下面就分别介绍指针与不同类型的数组. 6.4.1指针与一维数组 假设我们定义一个一维数组,该数组在内存会有系统分配的一个存储空间,其数组的名字就是数组在内存的首地址.若再定义一个指针变量,并将数组的首址传给指针变量

C语言之指针、数组和函数

基本解释 1.指针的本质是一个与地址相关的复合类型,它的值是数据存放的位置(地址):数组的本质则是一系列的变量. 2.数组名对应着(而不是指向)一块内存,其地址与容量在生命期内保持不变,只有数组的内容可以改变.指针可以随时指向任意类型的内存块,它的特征是"可变",所以我们常用指针来操作动态内存. 3.当数组作为函数的参数进行传递时,该数组自动退化为同类型的指针. 问题:指针与数组 听说char a[]与char *a是一致的,是不是这样呢? 答案与分析: 指针和数组存在着一些本质的区别

C++指针和数组

数组的指针即整个数组在内存中的起始地址,而数组元素的指针是数组中某一元素所占存储单元的地址. 利用指针法引用数组元素能使目标程序质量高.占内存少.运行速度快. C++语言中规定:数组名就代表数组首地址,也就是数组第0号元素的地址.如 int a[10]; int *p; p=&a[0];/*与p=a,是等价的*/ p+i或a+i就是a[i]元素的存储地址,即它们都指向数组的第i号元素a[i].所以*(p+i)或*(a+i)就与a[i]是等价的.实际上,在编译时,编译程序把a[i]处理成*(a+i

c++-jna传递指针转换为数组问题

问题描述 jna传递指针转换为数组问题 最近在做jna相关问题,遇到一个问题:JNA调用c++接口,传递的是指针,在c++接口中给这个指针分配了一个数组空间,在java这边怎样将这个指针转换为数组?希望大神能解答 解决方案 解决了,又写了一个接口用于指针的自增,然后返回这个指针给java那边.但是需要遍历数组,消耗了一些性能

C++中的指针、数组指针与指针数组、函数指针与指针函数

C++中的指针.数组指针与指针数组.函数指针与指针函数 本文从初学者的角度,深入浅出地详解什么是指针.如何使用指针.如何定义指针.如何定义数组指针和函数指针,并给出对应的实例演示:接着,区别了数组指针与指针数组.函数指针与指针函数:最后,对最常混淆的引用传递.值传递和指针传递做了区处. C++中一个重要的特性就是指针,指针不仅具有获得地址的能力,还具有操作地址的能力.指针可以用于数组.或作为函数的参数,用来访问内存和对内存的操作,指针的使用使得C++很高效,但是指针也非常危险,使用不当会带来比较