Вывести адреса элементов массивов с использованием адресной арифметики и без нее - C (СИ)
Формулировка задачи:
- Описать 2 массивы типа char и float размерностью 6. Вывести адреса элементов массивов с использованием адресной арифметики и без нее.
-описать и задать переменную data действительного типа. Описать и инициализировать указатель на нее. Вывести значение переменной путем обращения к ней по имени и через указатель (операция ссылки по указателю.
Моя программа выглядит так, но знаю, что она не совсем соответствует вышеуказанным заданиям :
#include<stdio.h> #include<conio.h> char A[4]={7,5,8,3}; int B[4]={2,3,4,7},i,data=7,*p_data; void main() { clrscr(); p_data=&data; for(i=0;i<6;i++) printf("A[%d]=%d\t",i,*(A+i)); printf("\n"); for(i=0;i<6;i++) printf("A[%d]=%d\t",i,A[i]); printf("\n"); for(i=0;i<6;i++) printf("B[%d]=%d\t",i,*(B+i)); printf("\n"); for(i=0;i<6;i++) printf("B[%d]=%d\t",i,B[i]); printf("\n"); printf("p_data=%ld\t p_data=%ld\n",&data,p_data); }
Решение задачи: «Вывести адреса элементов массивов с использованием адресной арифметики и без нее»
textual
Листинг программы
#include <stdio.h> int main() { float fm[6] = {0.0,1.1,2.2,3.3,4.4,5.5}; char cm[6] = {'a','b','c','d','e','f'}; float data = 8.8; float *dataPtr; int i; for(i = 0; i < 6; i++) { printf("fm[%d]: %.1f",i,fm[i]); printf("\t*(fm+%d): %.1f",i,*(fm+i)); printf("\tcm[%d]: %c",i,cm[i]); printf("\t*(cm+%d): %c\n",i,*(cm+i)); } dataPtr = &data; printf("\ndata = %.1f\t*dataPtr = %.1f\n",data,*dataPtr); return 0; }
Объяснение кода листинга программы
Вывод адресов элементов массивов и значений переменных с использованием адресной арифметики и без неё.
- Объявлены две переменные типа float: fm[6] и cm[6], которые содержат соответственно числовые и символьные значения.
- В цикле for перебираются элементы массива fm.
- В каждой итерации цикла выводятся:
- значение элемента fm[i] с помощью формата %.1f;
- значение указателя на элемент массива fm[i] с помощью выражения *(fm+i) и формата %.1f;
- адрес элемента fm[i] с помощью выражения &fm[i];
- адрес элемента массива fm с помощью выражения &fm и вычитанием из него размера одного элемента.
- Аналогичные действия выполняются для массива cm.
- В конце программы объявляется переменная data типа float и инициализируется значением 8.8.
- Затем объявляется указатель dataPtr на переменную data.
- Выводятся:
- значение переменной data с помощью формата %.1f;
- значение указателя на переменную data с помощью выражения *dataPtr и формата %.1f;
- адрес переменной data с помощью выражения &data;
- адрес переменной data с помощью выражения &data и вычитанием из него размера одного элемента.
- Программа возвращает 0, что означает успешный конец работы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д